From 051c099e2e34002fe2bbc77d773b0f90d58be81a Mon Sep 17 00:00:00 2001 From: Tim Deegan Date: Tue, 14 Nov 2006 18:21:51 +0000 Subject: [PATCH] Speed up shadow of x86_64 Linux guests using 3 paging levels. Linux kernel 2.6.9 or older uses 3 paging levels and its direct map is from 0x10000000000. Signed-off-by: Xin Li --- xen/arch/x86/mm/shadow/common.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c index 373fa491e1..7461882a38 100644 --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -1953,9 +1953,11 @@ int shadow_remove_write_access(struct vcpu *v, mfn_t gmfn, case 3: GUESS(0x70381C00000UL + (fault_addr >> 27), 3); break; } - /* Linux direct map at 0xffff810000000000 */ + /* 64bit Linux direct map at 0xffff810000000000; older kernels + * had it at 0x0000010000000000UL */ gfn = sh_mfn_to_gfn(v->domain, gmfn); GUESS(0xffff810000000000UL + (gfn << PAGE_SHIFT), 4); + GUESS(0x0000010000000000UL + (gfn << PAGE_SHIFT), 4); } #endif /* CONFIG_PAGING_LEVELS >= 4 */ #endif /* CONFIG_PAGING_LEVELS >= 3 */ -- 2.30.2